/***********************************************************************
 * Module:  IReportWriter.java
 * Author:  
 * Created: 1970年1月1日 8:00:00
 * Purpose: 类职责：负责具体类型报表的读写。
 ***********************************************************************/

package com.powerunion.datacollection.report.excelreport.base;

import java.util.Map;

import com.powerunion.datacollection.report.excelreport.config.ReportConfig.SheetConfig;

import jxl.write.WritableSheet;

/**
 * 报表数据生成器接口，一个报表数据生成器负责分析报表模板文件，并控制报表数据具体该如何生成。
 * 对于不同风格类型的报表其生成数据的方式可能完全不同。
 * @author juny
 */
public interface IReportWriter
{
   /**
    * 分析报表模板文件
    * @param sheet	sheet对应于模板
    * @throws Exception
    */
   public abstract void analysisTemplet(WritableSheet sheet) throws Exception;
   
   /**
    * 写报表数据
    * @param param	参数对象
    * @throws Exception
    */
   public abstract void writeData(Parameter param)throws Exception ;
   
   /**
    * 设置当前报表的配置信息对象。
    * @param sheetConfig	配置信息对象
    */
   public void setReportConfig(SheetConfig sheetConfig);
   
   /**
    * 设置当前报表的数据源列表。
    * @param dataSources	数据源列表，用map保存（key=数据源名称 value=数据源对象实例）
    */
   public void setDataSources(Map dataSources);
   
   /**
    * 设置报表参数，报表参数是一个保存了用户请求参数信息的map
    * @param params	参数map
    */
   public void setParameters(Map params);

}